//
//  FMDBOperationManager.h
//  高仿暴走斗图
//
//  Created by key on 16/10/11.
//  Copyright © 2016年 huangsongyao. All rights reserved.
//

#import <Foundation/Foundation.h>
#import "FMDBOperation.h"

@interface FMDBOperationManager : NSObject

@property (nonatomic, strong, readonly) FMDBOperation *fmdbOperation;               //数据库操作相关封装类

+ (instancetype)shareInstance;

/**
 *  创建一个数据库表单的字段抽象类集合
 *
 *  @param fieldParams 表单的字段名和类型的对象集合，例如：NSMutableArray *params = [@[@{@"field1" : FIELE_TYPE,},@{@"field2" : FIELE_TYPE,},@{@"field3" : FIELE_TYPE,},] mutableCopy];
 *
 *  @return NSMutableArray
 */
+ (NSMutableArray *)createDatabaseOpeartionFieldInfoForFieldParams:(NSMutableArray <NSDictionary *>*)fieldParams;

/**
 *  创建一个数据库表单操作抽象类
 *
 *  @param tableName 表名
 *  @param params    表单的字段名和类型的对象集合，例如：NSMutableArray *params = [@[@{@"field1" : FIELE_TYPE,},@{@"field2" : FIELE_TYPE,},@{@"field3" : FIELE_TYPE,},] mutableCopy];
 *
 *  @return HSYFMDBOperationInfo
 */
+ (HSYFMDBOperationInfo *)createDatabaseOperationInfoForTableName:(NSString *)tableName fieldParams:(NSMutableArray <NSDictionary *>*)params;

/**
 *  创建一个数据库表单操作抽象类，用于插入数据
 *
 *  @param tableName 表名称
 *  @param params    表单的字段名和类型的对象集合，例如：NSMutableArray *params = [@[@{@"field1" : FIELE_TYPE,},@{@"field2" : FIELE_TYPE,},@{@"field3" : FIELE_TYPE,},] mutableCopy];
 *  @param datas     要插入的数据，格式为：NSMutableArray *datas = [@[@"第一个字段的第二次值",@"第二个字段的第二次值",@"第三个字段的第二次值",] mutableCopy];
 *
 *  @return HSYFMDBOperationInfo
 */
+ (HSYFMDBOperationInfo *)createDatabaseOperationInfoForTableName:(NSString *)tableName fieldParams:(NSMutableArray <NSDictionary *>*)params insertDatas:(NSMutableArray <NSString *>*)datas;

@end

@interface FMDBOperationManager (Fields)

/**
 *  表字段格式，如果需要需要添加时，可自行添加方法，格式请务必模范"- testTableByFields"
 *
 *  @return 表字段格式集合
 */
+ (NSMutableArray <NSDictionary *>*)testTableByFields;

@end
